package com.logica.mdm.webservices.messages.beans;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Bean representing a party result with address and Party Rel
 */
public class PartyWithAddressAndRelBean implements Serializable {

	private static final long serialVersionUID = 1L;

	private String partyType;
	
	private String partyTypeCode;
	
	private String gender;
	
	private String genderCode;
	
	private String legalForm;
	
	private String legalFormCode;
	
	private String namePrefix;
	
	private String namePrefixCode;
	
	private String lastName;
	
	private String firstName;
	
	private Date birthdate;
	
	private String maritalStatus;
	
	private String maritalStatusCode;
	
	private BigInteger numberOfChildren;
	
	private String socialCategory;
	
	private String socialCategoryCode;
	
	private String taxId;
	
	private String homePhoneNumber;
	
	private String cellPhoneNumber;
	
	private String workPhoneNumber;
	
	private String faxPhoneNumber;

	private List<String> electronicAddress;
	
	private String flagPartenaire;
	
	private String mdmId;
	
	private List<String> crmId;
	
	private List<String> nexibookId;
	
	private String sigeoId;
	
	private List<String> as400Id;
	
	private List<AddressBean> addressList;
	
	private List<PartyRelBean> partyRelList;

	/**
	 * @return the partyType
	 */
	public String getPartyType() {
		return partyType;
	}

	/**
	 * @param partyType the partyType to set
	 */
	public void setPartyType(String partyType) {
		this.partyType = partyType;
	}

	/**
	 * @return the partyTypeCode
	 */
	public String getPartyTypeCode() {
		return partyTypeCode;
	}

	/**
	 * @param partyTypeCode the partyTypeCode to set
	 */
	public void setPartyTypeCode(String partyTypeCode) {
		this.partyTypeCode = partyTypeCode;
	}

	/**
	 * @return the gender
	 */
	public String getGender() {
		return gender;
	}

	/**
	 * @param gender the gender to set
	 */
	public void setGender(String gender) {
		this.gender = gender;
	}

	/**
	 * @return the genderCode
	 */
	public String getGenderCode() {
		return genderCode;
	}

	/**
	 * @param genderCode the genderCode to set
	 */
	public void setGenderCode(String genderCode) {
		this.genderCode = genderCode;
	}

	/**
	 * @return the legalForm
	 */
	public String getLegalForm() {
		return legalForm;
	}

	/**
	 * @param legalForm the legalForm to set
	 */
	public void setLegalForm(String legalForm) {
		this.legalForm = legalForm;
	}

	/**
	 * @return the legalFormCode
	 */
	public String getLegalFormCode() {
		return legalFormCode;
	}

	/**
	 * @param legalFormCode the legalFormCode to set
	 */
	public void setLegalFormCode(String legalFormCode) {
		this.legalFormCode = legalFormCode;
	}

	/**
	 * @return the namePrefix
	 */
	public String getNamePrefix() {
		return namePrefix;
	}

	/**
	 * @param namePrefix the namePrefix to set
	 */
	public void setNamePrefix(String namePrefix) {
		this.namePrefix = namePrefix;
	}

	/**
	 * @return the namePrefixCode
	 */
	public String getNamePrefixCode() {
		return namePrefixCode;
	}

	/**
	 * @param namePrefixCode the namePrefixCode to set
	 */
	public void setNamePrefixCode(String namePrefixCode) {
		this.namePrefixCode = namePrefixCode;
	}

	/**
	 * @return the lastName
	 */
	public String getLastName() {
		return lastName;
	}

	/**
	 * @param lastName the lastName to set
	 */
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	/**
	 * @return the firstName
	 */
	public String getFirstName() {
		return firstName;
	}

	/**
	 * @param firstName the firstName to set
	 */
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	/**
	 * @return the birthdate
	 */
	public Date getBirthdate() {
		return birthdate;
	}

	/**
	 * @param birthdate the birthdate to set
	 */
	public void setBirthdate(Date birthdate) {
		this.birthdate = birthdate;
	}

	/**
	 * @return the maritalStatus
	 */
	public String getMaritalStatus() {
		return maritalStatus;
	}

	/**
	 * @param maritalStatus the maritalStatus to set
	 */
	public void setMaritalStatus(String maritalStatus) {
		this.maritalStatus = maritalStatus;
	}

	/**
	 * @return the maritalStatusCode
	 */
	public String getMaritalStatusCode() {
		return maritalStatusCode;
	}

	/**
	 * @param maritalStatusCode the maritalStatusCode to set
	 */
	public void setMaritalStatusCode(String maritalStatusCode) {
		this.maritalStatusCode = maritalStatusCode;
	}

	/**
	 * @return the numberOfChildren
	 */
	public BigInteger getNumberOfChildren() {
		return numberOfChildren;
	}

	/**
	 * @param numberOfChildren the numberOfChildren to set
	 */
	public void setNumberOfChildren(BigInteger numberOfChildren) {
		this.numberOfChildren = numberOfChildren;
	}

	/**
	 * @return the socialCategory
	 */
	public String getSocialCategory() {
		return socialCategory;
	}

	/**
	 * @param socialCategory the socialCategory to set
	 */
	public void setSocialCategory(String socialCategory) {
		this.socialCategory = socialCategory;
	}

	/**
	 * @return the socialCategoryCode
	 */
	public String getSocialCategoryCode() {
		return socialCategoryCode;
	}

	/**
	 * @param socialCategoryCode the socialCategoryCode to set
	 */
	public void setSocialCategoryCode(String socialCategoryCode) {
		this.socialCategoryCode = socialCategoryCode;
	}

	/**
	 * @return the taxId
	 */
	public String getTaxId() {
		return taxId;
	}

	/**
	 * @param taxId the taxId to set
	 */
	public void setTaxId(String taxId) {
		this.taxId = taxId;
	}

	/**
	 * @return the homePhoneNumber
	 */
	public String getHomePhoneNumber() {
		return homePhoneNumber;
	}

	/**
	 * @param homePhoneNumber the homePhoneNumber to set
	 */
	public void setHomePhoneNumber(String homePhoneNumber) {
		this.homePhoneNumber = homePhoneNumber;
	}

	/**
	 * @return the cellPhoneNumber
	 */
	public String getCellPhoneNumber() {
		return cellPhoneNumber;
	}

	/**
	 * @param cellPhoneNumber the cellPhoneNumber to set
	 */
	public void setCellPhoneNumber(String cellPhoneNumber) {
		this.cellPhoneNumber = cellPhoneNumber;
	}

	/**
	 * @return the workPhoneNumber
	 */
	public String getWorkPhoneNumber() {
		return workPhoneNumber;
	}

	/**
	 * @param workPhoneNumber the workPhoneNumber to set
	 */
	public void setWorkPhoneNumber(String workPhoneNumber) {
		this.workPhoneNumber = workPhoneNumber;
	}

	/**
	 * @return the faxPhoneNumber
	 */
	public String getFaxPhoneNumber() {
		return faxPhoneNumber;
	}

	/**
	 * @param faxPhoneNumber the faxPhoneNumber to set
	 */
	public void setFaxPhoneNumber(String faxPhoneNumber) {
		this.faxPhoneNumber = faxPhoneNumber;
	}

	/**
	 * @return the electronicAddress
	 */
	public List<String> getElectronicAddress() {
		return electronicAddress;
	}

	/**
	 * @param electronicAddress the electronicAddress to set
	 */
	public void setElectronicAddress(List<String> electronicAddress) {
		this.electronicAddress = electronicAddress;
	}

	/**
	 * @return the flagPartenaire
	 */
	public String getFlagPartenaire() {
		return flagPartenaire;
	}

	/**
	 * @param flagPartenaire the flagPartenaire to set
	 */
	public void setFlagPartenaire(String flagPartenaire) {
		this.flagPartenaire = flagPartenaire;
	}

	/**
	 * @return the mdmId
	 */
	public String getMdmId() {
		return mdmId;
	}

	/**
	 * @param mdmId the mdmId to set
	 */
	public void setMdmId(String mdmId) {
		this.mdmId = mdmId;
	}

	/**
	 * @return the crmId
	 */
	public List<String> getCrmId() {
		return crmId;
	}

	/**
	 * @param crmId the crmId to set
	 */
	public void setCrmId(List<String> crmId) {
		this.crmId = crmId;
	}

	/**
	 * @return the nexibookId
	 */
	public List<String> getNexibookId() {
		return nexibookId;
	}

	/**
	 * @param nexibookId the nexibookId to set
	 */
	public void setNexibookId(List<String> nexibookId) {
		this.nexibookId = nexibookId;
	}

	/**
	 * @return the sigeoId
	 */
	public String getSigeoId() {
		return sigeoId;
	}

	/**
	 * @param sigeoId the sigeoId to set
	 */
	public void setSigeoId(String sigeoId) {
		this.sigeoId = sigeoId;
	}

	/**
	 * @return the as400Id
	 */
	public List<String> getAs400Id() {
		return as400Id;
	}

	/**
	 * @param as400Id the as400Id to set
	 */
	public void setAs400Id(List<String> as400Id) {
		this.as400Id = as400Id;
	}

	/**
	 * @return the addressList
	 */
	public List<AddressBean> getAddressList() {
		return addressList;
	}

	/**
	 * @param addressList the addressList to set
	 */
	public void setAddressList(List<AddressBean> addressList) {
		this.addressList = addressList;
	}

	/**
	 * Add an address to the Address List
	 * @param address the address to add
	 */
	public void addAddress(AddressBean address) {
		if (this.addressList == null) {
			this.addressList = new ArrayList<AddressBean>();
		}
		this.addressList.add(address);
	}
	
	/**
	 * @return the partyRelList
	 */
	public List<PartyRelBean> getPartyRelList() {
		return partyRelList;
	}

	/**
	 * @param partyRelList the partyRelList to set
	 */
	public void setPartyRelList(List<PartyRelBean> partyRelList) {
		this.partyRelList = partyRelList;
	}
	
	/**
	 * Add a paryRel to the PartyRel List
	 * @param partyRel the partyRel to add
	 */
	public void addPartyRel(PartyRelBean partyRel) {
		if (this.partyRelList == null) {
			this.partyRelList = new ArrayList<PartyRelBean>();
		}
		this.partyRelList.add(partyRel);
	}
	
}
